package cc.flyflow.biz.utils;

import cn.hutool.core.util.StrUtil;
import cc.flyflow.common.dto.third.DeptDto;

import java.util.ArrayList;
import java.util.List;

/**
 * 部门工具
 *
 * @author Jyl
 */
public class DeptUtil
{

    /**
     * 查询部门树
     *
     * @param deptId
     * @param deptList
     * @return
     */
    public static List<String> queryRootIdList(String deptId, List<DeptDto> deptList)
    {
        //如果是根节点 返回
        if (StrUtil.isBlank(deptId) || StrUtil.equals(deptId, "0"))
        {
            return new ArrayList<>();
        }

        //保存当前节点
        List<String> list = new ArrayList<>();
        list.add(deptId);

        //查询当前节点父节点
        DeptDto oaDepartments = deptList.stream().filter(w -> w.getId().equals(deptId)).findFirst().get();
        String parentId = oaDepartments.getParentId();

        //递归寻找父节点
        List<String> integers = queryRootIdList(parentId, deptList);

        //合并递归数据
        list.addAll(integers);
        return list;
    }

}
